The present invention relates generally to the use of serial buses as a means of communication between electronic devices and, in particular, to the sharing and ownership arbitration of a device between control-capable nodes via a serial bus, such as a serial bus operating in conformance with the IEEE 1394 Serial Bus standard.
It is known in the art to provide computer systems in which a plurality of computers are provided access to a variety of devices via a communication bus. For example, a serial bus may be used to share a printer between computers coupled to the printer via the serial bus. It is the nature of some devices that various computers can simultaneously share them, e.g., any device that only transmits information, such as a television or radio receiver. Other devices, such as computer hard drives, cannot be shared and are owned by (subject to the direction and control of) a single computer at any given moment. A serial bus technology capable of implementing the scenario described above is the so-called IEEE 1394 serial bus, sometimes referred to as xe2x80x9cFIREWIRExe2x80x9d.
While the scenario described above offers significant benefits by allowing devices to be shared amongst users, it also presents significant control problems. In particular, schemes must be devised to determine which computers own a device at any given moment, how to notify other computers that the ownership status of a device has changed, how to allow computers to request transfers of ownership of a device, etc. In short, techniques to arbitrate sharing of the devices must be provided.
One technique for providing such arbitration is the so-called Home Audio/Video Interoperability (HAVI) Architecture described in xe2x80x9cThe HAVI Specification: Specification of the Home Audio/Video Interoperability (HAVi) Architecturexe2x80x9d, version 1.0 beta dated Nov. 19, 1998, hereinafter the HAVI specification. The HAVI specification describes a system in which a home network (i.e., a communications infrastructure used within a home or residence) is viewed as a distributed computing platform, with the primary goal of the HAVI architecture to assure that various devices coupled to the home network can interoperate. The HAVI system incorporates and is built upon the IEEE 1394 serial bus. A necessary component of such a system is resource management wherein controllers are allowed to use controlled devices in an organized fashion, i.e., arbitration of device ownership. To support this, HAVI requires that the controlled devices themselves be modified in order to fit into the HAVI system such that the controlled devices themselves participate in the ownership arbitration process.
While the HAVI approach appears to be viable, it would be advantageous to provide an arbitration technique that does not require the devices being controlled to be modified and that does not require the participation of the controlled devices in the arbitration process. Such a technique should preferably be implementable using the IEEE 1394 serial bus.
The present invention provides techniques whereby devices coupled to a plurality of control-capable nodes via a communication bus may be shared in an organized fashion. In particular, the present invention is directed to the use of a 1394-compliant serial bus as a means of coupling 1394-compliant devices and control-capable nodes together. Control-capable nodes can determine the identity of an owner node of a given device and register with the owner node for notification of changes to ownership status of the device. Subsequently, the control-capable nodes may request ownership from the owner node, which request may be granted or denied, or the control-capable nodes may detect that ownership by the owner node has terminated. If such a request is granted, or if such termination is detected, the control-capable nodes can attempt to establish ownership of the device according to previously assigned priorities. Preferred data structures supporting these operations are disclosed, the data structures providing communications between device drivers and bus drivers in a control-capable node, and providing communications between bus drivers in different control-capable nodes. Furthermore, the data structures may be used to provide transparent communication between device drivers on different control-capable nodes. In this manner, the present invention provides a technique for device arbitration that does not require modifications to, nor participation by, the controlled devices.